package com.ssb.admin.common.utils;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TreeNode implements Serializable {

    private Long nodeId;
    private Long parentId;
    private Boolean isDefault;

    /**
     * 名称
     */
    private String name;
    /**
     * 路径
     */
    private String path;
    private String component;
    /**
     * 默认显示的叶子模块路径 点击父级默认跳转的子模块
     */
    private String redirect;

    private Boolean alwaysShow;
    /**
     * 子模块
     */
    private List<TreeNode> children;

    /**
     * 路由元信息
     */
    private TreeNodeMeta meta;



    /**
     * 一个 key/value 对象，包含了动态片段和全匹配片段，
     * 如果没有路由参数，就是一个空对象
     */
    private Object params;
    /**
     * 一个 key/value 对象，表示 URL 查询参数。例如，对于路径 /foo?user=1，
     * 则有 $route.query.user == 1，如果没有查询参数，则是个空对象
     */
    private Object query;
    /**
     * 当前路由的 hash 值 (带 #) ，如果没有 hash 值，则为空字符串
     */
    private String hash;
    /**
     * 完成解析后的 URL，包含查询参数和 hash 的完整路径
     */
    private String fullPath;
    /**
     * 如果存在重定向，即为重定向来源的路由的名字
     */
    private String redirectedFrom;
}
